<?php

class Listado
{
    public function __construct($items) 
    {
        foreach ($items as $item)
            $retval[] = htmlentities($item);
        return $retval;
    }
}

class Formulario
{
    private $method, $action, $enctype;
    
    function __construct($method, $action, $enctype="") {
        $this->method = $method;
        $this->action = $action;
        $this->enctype = $enctype;
        print "<form action=\"$this->action\" method=\"$this->method\" enctype=\"$this->enctype\">";
    }
    function submit($texto, $nombre="enviar")
    {
        print "<input type=\"submit\" name=\"$nombre\" value=\"$texto\">";
    }
    
    function reset($texto, $nombre="borrar")
    {
        print "<input type=\"reset\" name=\"$nombre\" value=\"$texto\">";
    }
    
    function __destruct()
    {
        print '</form>';
    }
    
}

class FormularioCampoTexto
{
    private $nombre, $valorPrevio, $estilo, $id, $eventos;
    function __construct($nombre, $valorPrevio="", $estilo="", $id="", $eventos=array()) {
        $this->nombre = 'name="'.$nombre.'"';
        $this->valorPrevio = 'value="'.$valorPrevio.'"';
        $this->estilo = 'style="'.$estilo.'"';
        $this->id = 'id="'.$id.'"';
        $this->eventos = "";
        foreach($eventos as $evento => $accion)
            $this->eventos.= $evento.'="'.$accion.'"';
        print $this->html();
     }

    function html()
    {
        return '<input type="text" '.$this->nombre.' '.$this->valorPrevio.' '.$this->estilo.' '.$this->id.' '.$this->eventos.'>';
    }
}

class FormularioCampoPassword
{
    private $nombre, $valorPrevio, $estilo, $id, $eventos;
    function __construct($nombre, $valorPrevio="", $estilo="", $id="", $eventos=array()) {
        $this->nombre = 'name="'.$nombre.'"';
        $this->valorPrevio = 'value="'.$valorPrevio.'"';
        $this->estilo = 'style="'.$estilo.'"';
        $this->id = 'id="'.$id.'"';
        $this->eventos = "";
        foreach($eventos as $evento => $accion)
            $this->eventos.= $evento.'="'.$accion.'"';
        print $this->html();
     }

    function html()
    {
        return '<input type="password" '.$this->nombre.' '.$this->valorPrevio.' '.$this->estilo.' '.$this->id.' '.$this->eventos.'>';
    }
}

class FormularioCampoCombo
{
    /*ToDo*/
}

class TextoHTML
{
    static function entities($txt)
    {
        return htmlentities(utf8_decode($txt));
    }
}
?>
